Java小知识点学习--------数组和位运算小知识点

位运算符

         >>>无符号右移运算符,无符号右移的规则和右移的规则同样,仅仅是在填充时,无论原来是正数还是负数都用0来补充。

 

数组:

         arr1=arr2;  此时两个数组变量都会同一时候指向同样的数组,即arr2所指向的数组,假设arr2所指向的数组发生变化,则arr1和arr2都变化。

         使用Arrays.sort进行排序(使用的是快排)


幻方矩阵:(直接给实例)

public class magic {
	/**
	 * 使用多维数组打印一个n阶幻方矩阵
	 * 矩阵的每行每列和对角线上的数据元素之和相等
	 * n取奇数(由于对角线的和与行和列的和相等)
	 */
	public void mag(int n,int a[][]) //传递阶数和数组
	{
		int i = 0, j, k;
		j = n / 2;
		for (k = 1; k <= n * n; k++) 
		{
			a[i][j] = k;
//			System.out.print("a["+i+"]["+j+"]="+a[i][j]+" ");
			if (k % n == 0) 
			{
				i = (i + 1) % n;
			} 
			else 
			{
				i = (i - 1 + n) % n;
				j = (j + 1) % n;
			}
		}
	}
	public static void main(String[] args) {
		int n=3;
		int a[][] = new int[n][n];
		new magic().mag(n, a);
//		System.out.println();
		for (int i = 0; i < n; i++)
		{
			for (int j = 0; j <n ; j++)
			{
				System.out.print(a[i][j]+"\t");
			}
			System.out.println();
		}
	}

}
实例结果:

8    1    6    
3    5    7    
4    9    2

posted @ 2015-03-18 17:04  mengfanrong  阅读(428)  评论(0编辑  收藏  举报